Graphics processors or graphics processing units (GPU's) are commonly used to generate three dimensional (3D) graphic images for a variety of multimedia devices including, but not limited to, laptop, computer, mobile phone, tablet, PDA, television, and the like. These processors often include dedicated circuitry configured to process graphics data stored in memory to create 3D images in a frame buffer for presentation to a display. The 3D images created by the graphics processor generally comprise a geometric object or polygon with a texture applied to the surface. The graphics processor may also perform other functions such as translation and rotation of vertices into different coordinate systems and shading to produce the appropriate levels of light and colors within an image.
Today, there is an ever-increasing demand for more textures with higher resolution to improve the aesthetics of graphic imagery. This demand has grown in step with advancements in processor technology. However, memory technology has grown at a slower rate. As a result, graphic designers are constantly challenged to provide enough memory bandwidth to exploit the full processing capabilities of modern processors in various electronic devices such as, but not limited to, mobile phones, laptop, PDA, tablet, smart watch, other smart gears and the like.
Texture compression techniques are widely used by graphics processors to meet these challenges. Texture compression involves the storing of texture data in a compressed format in memory. The goal of texture compression being reducing memory consumption while retaining the quality of the original texture at an acceptable level. Today textures are compressed while the application is packaged before shipping.
Currently there are many compression formats available such as, ETC1/2, PVRTC, S3TC, ASTC, and the like, which can be applied on resources before packaging the application. But the current technologies are facing different problems such as, reduction in RAM usage without making any changes to an application, and application/game developers need not keep different versions of resources/Applications to suit different hardware.
Currently, if there are multiple applications running on a user equipment (UE) and consuming more than threshold amount of cache memory of random access memory (RAM), the UE may face lag in response time and thus affecting the performance. If user of the UE wishes to open any additional applications, then to accommodate execution of new application, the processor of the UE may use low memory killer (LMK) policy, wherein in the LMK policy, the processor may kill one or more applications instantly to make required cache memory for the new applications that are to be executed. The LMK policy for killing one or more running applications can be applied by considering various parameters and different methods. Upon killing one or more applications, the new applications can be executed on the processor. But, this affects user experience and performance of the UE.
In view of the foregoing, there is a need to provide a system and method for texture memory optimization.
The above-mentioned shortcomings, disadvantages and problems are addressed herein and which will be understood by reading and studying the following specification.